interrupt- driven processing